package B_Splain;

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.geom.Point2D;

public class DataPanel extends JPanel {

    // 将 DataPanel 添加到 JScrollPane 中
     DefaultListModel<Point2D> pointList = new DefaultListModel<>();
     // 创建 JList 组件
     JList<Point2D> list = new JList<>(pointList){
         // 创建 JList 组件
         @Override
         public String getToolTipText(MouseEvent e) {
             // 获取鼠标所在位置的索引
             int index = locationToIndex(e.getPoint());
             if (index == -1){
                 return null;
             }
             Point2D point = pointList.getElementAt(index);
             return "x:" + point.getX() + ",y:" + point.getY();
         }


     };





    public DataPanel() {
        // 添加标题并设置顶部居中
        JLabel titleLabel = new JLabel("数据面板");
        titleLabel.setHorizontalAlignment(JLabel.CENTER); // 设置为居中
        add(titleLabel);
        // 设置布局为流式布局
        setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); // 纵向布局
        // 设置边框为黑色线条边框
        setBorder(BorderFactory.createLineBorder(Color.WHITE));
        // 设置面板大小为 400*200
        setPreferredSize(new Dimension(200, 600));
        // 设置背景颜色为浅灰色
        setBackground(Color.LIGHT_GRAY);
        // 设置面板为不透明
        setOpaque(true);
        JScrollPane scrollPane = new JScrollPane(list);
        add(scrollPane);
        ;
    }

    // 添加点并更新标签显示
    public void addPoint(Point2D point) {
        pointList.add(pointList.size(),point);
        // 重绘组件以显示更新的标签
        revalidate();
        repaint();
    }
}